package com.weng.coder.common.utils;

/**
 * 数据库数据类型
 *
 * @version 
 * @author wengzhonghui  2017年7月12日 下午3:33:53
 * 
 */
public enum DBType {
	BIGINT(JdbcType.BIGINT, JavaType.Integer, TagType.input, ValidType.text, ValidType.text), // 整型
    INT(JdbcType.INTEGER, JavaType.Integer, TagType.input, ValidType.text, ValidType.text), // 整型
    MEDIUMINT(JdbcType.MEDIUMINT, JavaType.Integer, TagType.input, ValidType.text, ValidType.text), // 整型
    TINYINT(JdbcType.TINYINT, JavaType.Integer, TagType.input, ValidType.text, ValidType.text), // 整型
    SMALLINT(JdbcType.SMALLINT, JavaType.Integer, TagType.input, ValidType.text, ValidType.text), // 整型
    INTEGER(JdbcType.INTEGER, JavaType.Integer, TagType.input, ValidType.text, ValidType.text), // 整型(h2)
    LONG(JdbcType.FLOAT, JavaType.Double, TagType.input, ValidType.text, ValidType.text), // 长整型
    FLOAT(JdbcType.FLOAT, JavaType.Double, TagType.input, ValidType.text, ValidType.text), // 单精度浮点型
    DOUBLE(JdbcType.DOUBLE, JavaType.Double, TagType.input, ValidType.text, ValidType.text), // 双精度浮点型
    DECIMAL(JdbcType.DOUBLE, JavaType.Double, TagType.input, ValidType.text, ValidType.text), // 小数
    NUMBER(JdbcType.INTEGER, JavaType.Integer, TagType.input, ValidType.text, ValidType.text), // 数字
    ENUM(JdbcType.ENUM, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 字符串
    CHAR(JdbcType.CHAR, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 字符串
    NCHAR(JdbcType.CHAR, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 字符串
    VARCHAR(JdbcType.VARCHAR, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 字符串
    VARCHAR2(JdbcType.VARCHAR, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 字符串
    NVARCHAR2(JdbcType.VARCHAR, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 字符串
    BLOB(JdbcType.BLOB, JavaType.ArrayByte, TagType.input, ValidType.text, ValidType.text), // 字节
    TINYBLOB(JdbcType.TINYBLOB, JavaType.ArrayByte, TagType.input, ValidType.text, ValidType.text), // 字节
    MEDIUMBLOB(JdbcType.MEDIUMBLOB, JavaType.ArrayByte, TagType.input, ValidType.text, ValidType.text), // 字节
    LONGBLOB(JdbcType.LONGBLOB, JavaType.ArrayByte, TagType.input, ValidType.text, ValidType.text), // 字节
    CLOB(JdbcType.CLOB, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 文本
    TEXT(JdbcType.TEXT, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 文本
    MEDIUMTEXT(JdbcType.MEDIUMTEXT, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 文本
    TINYTEXT(JdbcType.TINYTEXT, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 文本
    LONGTEXT(JdbcType.LONGTEXT, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 文本
    NCLOB(JdbcType.CLOB, JavaType.String, TagType.input, ValidType.text, ValidType.text), // 文本
    DATE(JdbcType.DATE, JavaType.Date, TagType.input, ValidType.text, ValidType.text), // 日期
    DATETIME(JdbcType.DATETIME, JavaType.Date, TagType.input, ValidType.text, ValidType.text), // 日期
    TIMESTAMP(JdbcType.TIMESTAMP, JavaType.Date, TagType.input, ValidType.text, ValidType.text),// 日期时间
	YEAR(JdbcType.YEAR, JavaType.String, TagType.input, ValidType.text, ValidType.text);// 字符串
	/**
     * 数据类型
     */
    private JdbcType jdbcType;
    /**
     * java数据类型
     */
    private JavaType javaType;
    /**
     * html标签类型
     */
    private TagType tagType;
    /**
     * ui验证类型
     */
    private ValidType validType;

    private DBType(JdbcType jdbcType, JavaType javaType, TagType tagType, ValidType validType,
            ValidType validType1) {
        this.jdbcType = jdbcType;
        this.javaType = javaType;
        this.tagType = tagType;
        this.validType = validType;
        this.validType = validType1;
    }

    public JdbcType getJdbcType() {
        return jdbcType;
    }

    public void setJdbcType(JdbcType jdbcType) {
        this.jdbcType = jdbcType;
    }

    public JavaType getJavaType() {
        return javaType;
    }

    public void setJavaType(JavaType javaType) {
        this.javaType = javaType;
    }

    public TagType getTagType() {
        return tagType;
    }

    public void setTagType(TagType tagType) {
        this.tagType = tagType;
    }

    public ValidType getValidType() {
        return validType;
    }

    public void setValidType(ValidType validType) {
        this.validType = validType;
    }
}
